package org.cis.jproyinv.seguridad.negocio;

import java.util.List;
import javax.swing.JOptionPane;
import org.cis.jproyinv.seguridad.dao.UsuarioDao;
import org.cis.jproyinv.seguridad.modelo.Rol;
import org.cis.jproyinv.seguridad.modelo.Usuario;

public class AdministrarUsuarioUCController {

    private UsuarioDao usuarioDao = new UsuarioDao();
    private Usuario usuario;
    private String rol;

    public AdministrarUsuarioUCController() {
    }

    public Usuario crear() {
        usuario = new Usuario();
        return usuario;
    }

    public Usuario editar(Long id) {
        return usuarioDao.buscar(id);
    }

    public Rol usuarioRoles(Usuario us) {
        return usuarioDao.buscar(us.getId()).getRol();
    }

    public List<Rol> roles(){
        return usuarioDao.roles();
    }
    
    public boolean disponibilidad (String nick){
        boolean disponibilidad=true;
        if(usuarioDao.disponibilidad(nick).isEmpty()==false){
            disponibilidad=false;
        }
        return disponibilidad;
    }

    public List<Usuario> buscar(String criterio) {
        return usuarioDao.buscarCriterio(criterio);
    }

    public boolean guardar(Usuario usu) {
        boolean guardar = false;
        try {
            if (usuarioDao.existeUsuario(usu.getNick(), usu.getContrasenia()) == false) {
                usuarioDao.guardar(usu);
                guardar = true;
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return guardar;
    }

    public boolean existe(Usuario usu) {
        boolean existe = false;
        for (Usuario usu1 : this.usuarioDao.buscarTodos()) {
            if (usu1.getId().equals(usu.getId())) {
                existe = true;
            }
        }
        return existe;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public UsuarioDao getUsuarioDao() {
        return usuarioDao;
    }

    public void setUsuarioDao(UsuarioDao usuarioDao) {
        this.usuarioDao = usuarioDao;
    }

    public void actualizar(Usuario usuario) {
        this.usuarioDao.actualizar(usuario);
    }

    public String getRol() {
        return rol;
    }

    public void setRol(String rol) {
        this.rol = rol;
    }
    
}
